﻿Imports TepcelDominio
Imports TepcelBL
Public Class frmEmpleado
    Dim err As New System.Windows.Forms.ErrorProvider
    Dim listaEmpleado As New List(Of Empleado)
    Dim EmpleadoBL As New EmpleadoBL

    Private Sub frmEmpleado_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call CargarGrid()
        txtBuscar.Focus()
    End Sub

    Private Sub clearError()
        err.SetError(txtdniEmpleado, "")
        err.SetError(txtNombreEmpleado, "")
        err.SetError(txtPaternoEmpleado, "")
        err.SetError(txtMaternoEmpleado, "")
    End Sub

    Private Sub CargarGrid()
        DGVLista.Rows.Clear()
        listaEmpleado = EmpleadoBL.GetAllFromEmpleado
        If listaEmpleado.Count = 0 Then
            btnModificar.Enabled = False
            btnEliminar.Enabled = False
        End If
        Dim i As Integer
        For i = 0 To listaEmpleado.Count - 1
            With listaEmpleado.Item(i)
                DGVLista.Rows.Add(i, .codigoEmpleado, .dniEmpleado, .apellidoPaterno + " " + .apellidoMaterno + " " + .nombreEmpleado, .telefonoEmpleado)
            End With
        Next
    End Sub

    Private Sub nuevo()
        btnModificar.Enabled = False
        btnEliminar.Enabled = False
        btnCancelar.Enabled = True
        btnGuardar.Enabled = True
        btnNuevo.Enabled = False

        txtdniEmpleado.Enabled = True
        txtNombreEmpleado.Enabled = True
        txtPaternoEmpleado.Enabled = True
        txtMaternoEmpleado.Enabled = True
        txtEmailEmpleado.Enabled = True
        txtTelefonoEmpleado.Enabled = True
        txtDireccionEmpleado.Enabled = True

        DGVLista.Enabled = False

        txtdniEmpleado.Focus()
    End Sub

    Private Sub cancelar()
        btnModificar.Enabled = True
        btnEliminar.Enabled = True
        btnCancelar.Enabled = False
        btnGuardar.Enabled = False
        btnNuevo.Enabled = True

        txtdniEmpleado.Enabled = False
        txtNombreEmpleado.Enabled = False
        txtPaternoEmpleado.Enabled = False
        txtMaternoEmpleado.Enabled = False
        txtEmailEmpleado.Enabled = False
        txtTelefonoEmpleado.Enabled = False
        txtDireccionEmpleado.Enabled = False

        DGVLista.Enabled = True

        txtCodigoEmpleado.Text = ""
        txtNombreEmpleado.Text = ""
        txtPaternoEmpleado.Text = ""
        txtMaternoEmpleado.Text = ""
        txtdniEmpleado.Text = ""
        txtEmailEmpleado.Text = ""
        txtTelefonoEmpleado.Text = ""
        txtDireccionEmpleado.Text = ""
    End Sub

    Private Sub txtBuscar_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtBuscar.TextChanged
        If txtBuscar.Text.Trim.Length = 0 Then
            Call CargarGrid()
        Else
            DGVLista.Rows.Clear()
            listaEmpleado = EmpleadoBL.SearchFromEmpleado(txtBuscar.Text.Trim)
            Dim i As Integer
            For i = 0 To listaEmpleado.Count - 1
                With listaEmpleado.Item(i)
                    DGVLista.Rows.Add(i, .codigoEmpleado, .dniEmpleado, .apellidoPaterno + " " + .apellidoMaterno + " " + .nombreEmpleado, .telefonoEmpleado)
                End With
            Next
        End If
    End Sub

    Private Sub btnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        Call nuevo()
        Call clearError()
    End Sub

    Private Sub btnModificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModificar.Click
        Call nuevo()
        Call clearError()
        Dim item As Integer = DGVLista.Item(0, DGVLista.CurrentRow.Index).Value
        With listaEmpleado.Item(item)
            txtCodigoEmpleado.Text = .codigoEmpleado
            txtdniEmpleado.Text = .dniEmpleado
            txtNombreEmpleado.Text = .nombreEmpleado
            txtPaternoEmpleado.Text = .apellidoPaterno
            txtMaternoEmpleado.Text = .apellidoMaterno
            txtEmailEmpleado.Text = .emailEmpleado
            txtTelefonoEmpleado.Text = .telefonoEmpleado
            txtDireccionEmpleado.Text = .direccionEmpleado
        End With

        txtdniEmpleado.Enabled = True
        txtNombreEmpleado.Enabled = True
        txtPaternoEmpleado.Enabled = True
        txtMaternoEmpleado.Enabled = True
        txtEmailEmpleado.Enabled = True
        txtTelefonoEmpleado.Enabled = True
        txtDireccionEmpleado.Enabled = True

    End Sub

    Private Sub btnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If txtdniEmpleado.Text.Trim.Length = 0 Then
            err.SetError(txtdniEmpleado, "Ingrese el DNI del Empleado")
            Return
        Else
            err.SetError(txtdniEmpleado, "")
        End If

        If txtNombreEmpleado.Text.Trim.Length = 0 Then
            err.SetError(txtNombreEmpleado, "Ingrese el Nombre del Empleado")
            Return
        Else
            err.SetError(txtNombreEmpleado, "")
        End If

        If txtPaternoEmpleado.Text.Trim.Length = 0 Then
            err.SetError(txtPaternoEmpleado, "Ingrese el Apellido Paterno del Empleado")
            Return
        Else
            err.SetError(txtPaternoEmpleado, "")
        End If

        If txtMaternoEmpleado.Text.Trim.Length = 0 Then
            err.SetError(txtMaternoEmpleado, "Ingrese el Apellido Materno del Empleado")
            Return
        Else
            err.SetError(txtMaternoEmpleado, "")
        End If



        If (txtCodigoEmpleado.Text.Trim.Length > 0) Then
            Dim emp As New TepcelDominio.Empleado(txtCodigoEmpleado.Text, txtNombreEmpleado.Text.Trim, txtPaternoEmpleado.Text, txtMaternoEmpleado.Text, txtdniEmpleado.Text, txtEmailEmpleado.Text, txtTelefonoEmpleado.Text, txtDireccionEmpleado.Text)
            txtCodigoEmpleado.Text = EmpleadoBL.NuevoEmpleado(emp)
        Else
            Dim emp As New TepcelDominio.Empleado("", txtNombreEmpleado.Text.Trim, txtPaternoEmpleado.Text, txtMaternoEmpleado.Text, txtdniEmpleado.Text, txtEmailEmpleado.Text, txtTelefonoEmpleado.Text, txtDireccionEmpleado.Text)
            txtCodigoEmpleado.Text = EmpleadoBL.NuevoEmpleado(emp)
        End If


        Call cancelar()


        Call CargarGrid()

    End Sub

    Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
        Dim result As DialogResult
        result = MessageBox.Show("confirma que desea Eliminar el Registro seleccionado?", "Eliminar", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
        If result = DialogResult.OK Then
            If EmpleadoBL.DeleteEmpleado(listaEmpleado.Item(CInt(DGVLista.Item(0, DGVLista.CurrentRow.Index).Value)).codigoEmpleado) Then
                MessageBox.Show("Registro Eliminado Correctamente", "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Call CargarGrid()
            Else
                MessageBox.Show("No se elimino el registro seleccionado", "Eliminar", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End If
        End If
    End Sub

    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        Call cancelar()
        Call clearError()

        txtBuscar.Focus()

    End Sub
End Class